﻿using SD.Infrastructure.DTOBase;
using SlamDunk.MES.IAppService.DTOs.Outputs.FoundationContext;
using SlamDunk.ValueObjects.Enums;
using System;
using System.Runtime.Serialization;

namespace SlamDunk.MES.IAppService.DTOs.Outputs.ResourceContext
{
    /// <summary>
    /// 物料类数据传输对象
    /// </summary>
    [DataContract]
    public class MaterialClassInfo : BaseDTO
    {
        #region 工厂模型Id —— Guid? FacilityId
        /// <summary>
        /// 工厂模型Id
        /// </summary>
        [DataMember]
        public Guid? FacilityId { get; set; }
        #endregion

        #region 物料来源类型 —— MaterialSourceType? MaterialSourceType
        /// <summary>
        /// 物料来源类型
        /// </summary>
        [DataMember]
        public MaterialSourceType? MaterialSourceType { get; set; }
        #endregion

        #region 上级节点Id —— Guid? ParentNodeId
        /// <summary>
        /// 上级节点Id
        /// </summary>
        [DataMember]
        public Guid? ParentNodeId { get; set; }
        #endregion

        #region 是否是根级节点 —— bool IsRoot
        /// <summary>
        /// 是否是根级节点
        /// </summary>
        [DataMember]
        public bool IsRoot { get; set; }
        #endregion

        #region 是否是叶子级节点 —— bool IsLeaf
        /// <summary>
        /// 是否是叶子级节点
        /// </summary>
        [DataMember]
        public bool IsLeaf { get; set; }
        #endregion

        #region 树路径 —— string TreePath
        /// <summary>
        /// 树路径
        /// </summary>
        [DataMember]
        public string TreePath { get; set; }
        #endregion

        #region 描述 —— string Description
        /// <summary>
        /// 描述
        /// </summary>
        [DataMember]
        public string Description { get; set; }
        #endregion


        //导航属性

        #region 导航属性 - 工厂模型 —— FacilityInfo FacilityInfo
        /// <summary>
        /// 导航属性 - 工厂模型
        /// </summary>
        [DataMember]
        public FacilityInfo FacilityInfo { get; set; }
        #endregion
    }
}
